package com.sxt.common;

import lombok.Data;

/**
 * @description: 业务结果包装类
 *  因为前端layui技术需要 code、msg、data 这样的数据格式
 *  所以需要后端对数据进行包装
 *
 * @author: Mr.xx
 */
@Data
public class Result {

    private Integer code; //业务码
    private String msg; //业务消息
    private Object data; //业务数据

    /**
     * 所有的业务分为两种情况：
     *      1、成功：
     *              1、成功了没有数据  （删除）
     *              2、成功了有数据  （查询）
     *
     *     2、失败：
     *          失败时没有数据  失败原因
     */

    /**
     * 成功了没有数据
     */
    public Result() {
        this.code = CodeMsg.SUCCESS.code;
        this.msg = CodeMsg.SUCCESS.msg;
    }

    /**
     * 成功了有数据
     */
    public Result(Object data) {
        this();
        this.data = data;
    }

    /**
     * 失败 没有数据
     * 但是 有错误码 和 错误消息
     */
    public Result(CodeMsg codeMsg) {
        this.code = codeMsg.code;
        this.msg = codeMsg.msg;
    }

    /**
     * 兼容异常信息
     * 因为异常信息处理中 code 和 msg
     * @param bussiException
     */
    public Result(BussiException bussiException) {
        this.code = bussiException.getCode();
        this.msg = bussiException.getMessage();
    }

}
